﻿using System;
using System.ComponentModel.DataAnnotations;

namespace IssueVision.Data.Web
{
    // The MetadataTypeAttribute identifies IssueHistoryMetadata as the class
    // that carries additional metadata for the IssueHistory class.
    [MetadataTypeAttribute(typeof(IssueHistory.IssueHistoryMetadata))]
    public partial class IssueHistory
    {
        // This class allows you to attach custom attributes to properties
        // of the IssueHistory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class IssueHistoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private IssueHistoryMetadata()
            {
            }

            public string Action { get; set; }

            public string AssignedToID { get; set; }

            public string ChangedByID { get; set; }

            public string Comment { get; set; }

            public DateTime DateCreated { get; set; }

            public string Description { get; set; }

            public Nullable<long> DuplicateID { get; set; }

            public int IssueHistoryID { get; set; }

            public long IssueID { get; set; }

            public byte IssueTypeID { get; set; }

            public DateTime LastChange { get; set; }

            public string OpenedByID { get; set; }

            public DateTime OpenedDate { get; set; }

            public Nullable<int> PlatformID { get; set; }

            public byte Priority { get; set; }

            public string ReproSteps { get; set; }

            public Nullable<DateTime> ResolutionDate { get; set; }

            public Nullable<byte> ResolutionID { get; set; }

            public string ResolvedByID { get; set; }

            public byte Severity { get; set; }

            public byte StatusID { get; set; }

            public Nullable<byte> SubStatusID { get; set; }

            public string Title { get; set; }

            public Platform Platform { get; set; }

            public Status Status { get; set; }
        }
    }
}
